/**
 * 
 */
package com.qolome.mail;

import java.io.File;
import java.io.UnsupportedEncodingException;

import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

/**
 * @Description: 邮件工具类支持富文本
 * @author 姜锋
 * @date 2018年6月17日 下午6:27:47
 * @version V1.0
 */
public class SpringMailSender {
	// Spring的邮件工具类，实现了MailSender和JavaMailSender接口
	private JavaMailSenderImpl mailSender;

	public SpringMailSender() {
		// 初始化JavaMailSenderImpl，当然推荐在spring配置文件中配置，这里是为了简单
		mailSender = new JavaMailSenderImpl();
		// 设置参数
		mailSender.setHost("smtp.exmail.qq.com");
		mailSender.setUsername("notice@qolome.com");
		mailSender.setPassword("bkQnWwJE9Ac8Gpjg");
	}
	/**
	 * @throws UnsupportedEncodingException 
	 * 
	 * @Description: 附件发送
	 * @author 姜锋
	 * @date 2019年12月18日 上午10:45:40
	 * @param @throws MessagingException
	 * @return void
	 * @throws
	 */
	public void attachedSend() throws MessagingException, UnsupportedEncodingException {
		// 使用JavaMail的MimeMessage，支付更加复杂的邮件格式和内容
		MimeMessage msg = mailSender.createMimeMessage();
		// 创建MimeMessageHelper对象，处理MimeMessage的辅助类
		MimeMessageHelper helper = new MimeMessageHelper(msg, true,"UTF-8");
		// 使用辅助类MimeMessage设定参数
		helper.setFrom(mailSender.getUsername(),"业务通知");
		helper.setTo(new InternetAddress("821048800@qq.com","Qolome使用者","UTF-8"));
		helper.setSubject("JAJA大附件测试");
		helper.setText("这个邮件是java发送的支持抄送");
		// 加载文件资源，作为附件
		// 加入附件
		//报文总大小不可超过50M
		//推算附件不可超过33M
		helper.addAttachment("孙楠 - 拯救.flac", new File("E:\\Music\\华晨宇 - 易燃易爆炸 (Live).flac"));
		//抄送
		helper.addBcc(new InternetAddress("1148038499@qq.com","姜锋","UTF-8"));
		// 发送邮件
		mailSender.send(msg);
	}
	/**
	 * 
	 * @Description: 富文本发送
	 * @author 姜锋
	 * @date 2019年12月18日 上午10:45:25
	 * @param @throws MessagingException
	 * @return void
	 * @throws
	 */
	public void richContentSend() throws MessagingException {
		
		MimeMessage msg = mailSender.createMimeMessage();
		MimeMessageHelper helper = new MimeMessageHelper(msg, true);
		helper.setFrom(mailSender.getUsername());
		helper.setTo("821048800@qq.com;jf11480@outlook.com");
		helper.setSubject("富文本发送测试");
		
		/*helper.setText(text, true);*/
		// 第二个参数true，表示text的内容为html，然后注意<img/>标签，src='cid:file'，'cid'是contentId的缩写，'file'是一个标记，需要在后面的代码中调用MimeMessageHelper的addInline方法替代成文件
		helper.setText("<body><p>HelloHtml Email</p><img src='cid:file'/><img src='cid:file'/></body>", true);
		FileSystemResource file = new FileSystemResource(
				"C:/Users/Ginger/OneDrive/图片/证/微信图片_20180526111721.jpg");
		helper.addInline("file", file);
		helper.addInline("file", file);
		mailSender.send(msg);
	}
	
	public static void main(String[] args) throws MessagingException, UnsupportedEncodingException {
		
		SpringMailSender springMailSender = new SpringMailSender();
		springMailSender.attachedSend();
		
	}
	
}
